package condominio.negocio;

import java.io.PrintWriter;
import java.io.Writer;
import java.util.Collection;

import javax.swing.JOptionPane;

import com.mysql.fabric.Response;

import condominio.dao.CuotaDAO;
import condominio.dao.ReservaDAO;
import condominio.excepcion.DAOExcepcion;
import condominio.modelo.Cuota;
import condominio.modelo.EspacioComun;
import condominio.modelo.Usuario;
import condominio.modelo.Vivienda;
import condominio.modelo.reservaespacio;

public class GestionReservaEspacio {

	

	public void insertar(String horario,int idusuario , int idespaciocomun)
			throws DAOExcepcion {
		ReservaDAO dao = new ReservaDAO();
        EspacioComun espaciocomun = new EspacioComun();
        espaciocomun.setIdespaciocomun(idespaciocomun);
        Usuario usuario = new Usuario();
        usuario.setIdUsuario(idusuario);
		reservaespacio vo = new reservaespacio();
		vo.setFecha(horario);
		vo.setUsuario(usuario);
		vo.setEspaciocomun(espaciocomun);
		try{
		dao.insertar(vo);
		}catch (DAOExcepcion e) {
			// TODO Auto-generated catch block
			 JOptionPane.showMessageDialog(null, "el espacio ya se encuentra reservado");
		}
		
			
			
		
	}


	public Collection<reservaespacio> listar() throws DAOExcepcion {
		ReservaDAO dao = new ReservaDAO();
		return dao.listar();
	}
	
	public Collection<reservaespacio> buscar(Integer fechabusqueda) throws DAOExcepcion {
		ReservaDAO dao = new ReservaDAO();
		return dao.buscar(fechabusqueda);
	}
	
	public void eliminareserva(String fecha,int idespaciocomun){
		
		ReservaDAO dao = new ReservaDAO();
		
		try {
			dao.eliminar(fecha, idespaciocomun);
		} catch (DAOExcepcion e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	
	public boolean validar(String fecha, Integer idespacio) throws DAOExcepcion {
		ReservaDAO dao = new ReservaDAO();
		boolean estado = false;
		Collection<reservaespacio> validado = dao.validar();
		for(reservaespacio x:validado){
			
			if(x.getFecha()==fecha && x.getEspaciocomun().getIdespaciocomun()==idespacio){
				
				estado = true;
				
						
			}
			
		}
		
		return estado;
	}
	
}
